#ifndef LOGICA_H
#define LOGICA_H

/**
	@author Julio Sakai,,, <jun@jun-desktop>
*/
#include "tiposdamaxduo.h"

class Logica{
private:
		

public:
	Logica();
	~Logica();
	/*Metodo que analisa a pedra selecionada pelo jogador da rodada.
	Devolve verdadeiro caso a pedra selecionada seja do jogador
	É o método que é executado no primeiro clique*/
	bool ValidaPosicaoSelecaoDePedra(MouseClique, int);
	
	/*Metodo que analisa o destino da jogada.
	Devolve verdadeiro caso o destino esteja vazio e seja valido
	É o método que é executado no segundo clique
	Utiuliza como argumentos as coordenadas de movimento */
	bool ValidaPosicaoDeDestino(MouseClique, int);
	
	/*
	Determina qual o metodo sera invocado para analizar a jogada
	
	primeiroclique contem a pedra selecionada e sua coordenada
	segundiclique contem a coordenada do movimento proposto e o conteudo da coordenada.
	*/
	bool QualTipoDeMovimentoUsarParaValidacao(MouseClique, MouseClique, int);
	
	
	/*Verificam o se o movimento da pedra pode ser executado.
	Retornam true quando positivo.*/
	bool VerificaMovimentoPedraBranca(Coordenada, Coordenada);
	bool VerificaMovimentoPedraPreta(Coordenada, Coordenada );
	bool VerificaMovimentoDama(Coordenada, Coordenada);

};

#endif
